| |
1.4. Режими роботи мікропроцесорної системи
Як вже наголошувалося, мікропроцесорна система забезпечує велику гнучкість роботи, вона здатна настроюватися на будь-яку задачу. Гнучкість ця обумовлена перш за все тим, що функції, виконувані системою, визначаються програмою (програмним забезпеченням, software), яку виконує процесор. Апаратура (апаратне забезпечення, hardware) залишається незмінною при будь-якій задачі. Записуючи в пам'ять системи програму, можна примусити мікропроцесорну систему виконувати будь-яку задачу, підтримувану даною апаратурою. До того ж шинна організація зв'язків мікропроцесорної системи дозволяє досить легко замінювати апаратні модулі, наприклад, замінювати пам'ять на нову більшого об'єму або більш високої швидкодії, додавати або модернізувати пристрої вводу/виводу, нарешті, замінювати процесор на більш потужний. Це також дозволяє збільшити гнучкість системи, продовжити її життя при будь-якій зміні вимог до неї.
Але гнучкість мікропроцесорної системи визначається не тільки цим. Настроюватися на задачу допомагає ще і вибір режиму роботи системи, тобто режиму обміну інформацією по системній магістралі (шині).
Практично будь-яка розвинена мікропроцесорна система (у тому числі і комп'ютер) підтримує три основні режими обміну по магістралі:
- програмний обмін інформацією;
- обмін з використанням переривань (Interrupts);
- обмін з використанням прямого доступу до пам'яті (ПДП, DMA - Direct Memory Access).
Програмний обмін інформацією є основним в будь-якій мікропроцесорній системі. Він передбачений завжди, без нього неможливі інші режими обміну. В цьому режимі процесор є одноосібним господарем (або задатчиком, Master) системної магістралі. Всі операції (цикли) обміну інформацією в даному випадку ініціюються тільки процесором, всі вони виконуються строго в порядку, що наказано виконуваною програмою.
Процесор читає (вибирає) з пам'яті коди команд і виконує їх, читаючи дані з пам'яті або з пристрою вводу/виводу, обробляючи їх, записуючи дані в пам'ять або передаючи їх в пристрій вводу/виводу. Шлях процесора за програмою може бути лінійним, циклічним, може містити переходи (стрибки), але він завжди безперервний і повністю знаходиться під контролем процесора. Ні на які зовнішні події, не пов'язані з програмою, процесор не реагує (мал. 1.11). Всі сигнали на магістралі в даному випадку контролюються процесором.

Мал. 1.10. Програмний обмін інформацією.
Обмін по перериваннях використовується тоді, коли необхідна реакція мікропроцесорної системи на якусь зовнішню подію, на прихід зовнішнього сигналу. У випадку комп'ютера зовнішньою подією може бути, наприклад, натиснення на клавішу клавіатури або прихід по локальній мережі пакету даних. Комп'ютер повинен реагувати на це, відповідно, виводом символу на екран або ж читанням і обробкою прийнятого по мережі пакету.
В загальному випадку організувати реакцію на зовнішню подію можна трьома різними шляхами:
- за допомогою постійного програмного контролю факту настання події (так званий метод опиту прапора або polling);
- за допомогою переривання, тобто примусового переводу процесора з виконання поточної програми на виконання екстрено необхідної програми;
- за допомогою прямого доступу до пам'яті, тобто без участі процесора при його відключенні від системної магістралі.
Проілюструвати ці три способи можна наступним простим прикладом. Припустимо, ви готуєте собі сніданок, поставивши на плиту кип'ятитися молоко. Природно, на закипання молока треба реагувати, причому терміново. Як це організувати? Перший шлях - постійно стежити за молоком, але тоді ви нічого іншого не зможете зробити. Правильніше регулярно поглядати на молоко, роблячи одночасно щось інше. Це програмний режим з опитом прапора. Другий шлях - встановити на каструлю з молоком датчик, який подасть звуковий сигнал при закипанні молока, і спокійно займатися іншими справами. Почувши сигнал, ви вимкнете молоко. Правда, можливо, вам доведеться спочатку закінчити те, що ви почали робити, так що ваша реакція буде повільніше, ніж в першому випадку. Нарешті, третій шлях полягає в тому, щоб з'єднати датчик на каструлі з управлінням плитою так, щоб при закипанні молока пальник був вимкнений без вашої участі (правда, аналогія з ПДП тут не дуже точна, оскільки в даному випадку на момент виконання дії вас не відволікають від роботи).
Перший випадок з опитом прапора реалізується в мікропроцесорній системі постійним читанням інформації процесором з пристрою вводу/виводу, пов'язаного з тим зовнішнім пристроєм, на поведінку якого необхідно терміново реагувати.
В другому випадку в режимі переривання процесор, одержавши запит переривання від зовнішнього пристрою (IRQ - Interrupt ReQuest), закінчує виконання поточної команди і переходить до програми обробки переривання. Закінчивши виконання програми обробки переривання, він повертається до перерваної програми з того місця, де його перервали (мал. 1.12).
Тут важливе те, що вся робота, як і у разі програмного режиму, здійснюється самим процесором, зовнішня подія просто тимчасово відволікає його. Реакція на зовнішню подію по перериванню в загальному випадку повільніша, ніж при програмному режимі. Як і у разі програмного обміну, тут всі сигнали на магістралі виставляються процесором, тобто він повністю контролює магістраль. Для обслуговування переривань в систему іноді вводиться спеціальний модуль контролера переривань, але він в обміні інформацією не бере участь. Його задача полягає в тому, щоб спростити роботу процесора із зовнішніми запитами переривань. Цей контролер звичайно програмно управляється процесором по системній магістралі.

Мал. 1.11. Обслуговування переривання.
Природно, ніякого прискорення роботи системи переривання не дає. Його використання дозволяє тільки відмовитися від постійного опиту прапора зовнішньої події і тимчасово, до настання зовнішньої події, зайняти процесор виконанням якихось інших задач.
Прямий доступ до пам'яті (ПДП, DMA) - це режим, принципово відмінний від двох раніше розглянутих режимів тим, що обмін по системній шині йде без участі процесора. Зовнішній пристрій, що вимагає обслуговування, сигналізує процесору, що режим ПДП необхідний, у відповідь на це процесор закінчує виконання поточної команди і відключається від всіх шин, сигналізуючи пристрою що обмін в режимі ПДП можна починати.
Операція ПДП зводиться до пересилки інформації з пристрою вводу/виводу в пам'ять або ж з пам'яті в пристрій вводу/виводу. Коли пересилка інформації буде закінчена, процесор знов повертається до перерваної програми, продовжуючи її з того місця, де його перервали (мал. 1.13). Це схоже на режим обслуговування переривань, але в даному випадку процесор не бере участь в обміні. Як і у разі переривань, реакція на зовнішню подію при ПДП істотно повільніша, ніж при програмному режимі.
Зрозуміло, що в цьому випадку потрібне введення в систему додаткового пристрою (контролера ПДП), який здійснюватиме повноцінний обмін по системній магістралі без жодної участі процесора. Причому процесор заздалегідь повинен повідомити цей контроллер ПДП, звідки йому слід брати інформацію і/або куди її слід поміщати. Контролер ПДП може вважатися спеціалізованим процесором, який відрізняється тим, що сам не бере участь в обміні, не приймає в себе інформацію і не видає її (мал. 1.14).

Мал. 1.12. Обслуговування ПДП.

Мал. 1.13. Інформаційні потоки в режимі ПДП.
У принципі контролер ПДП може входити до складу пристрою вводу/виводу, якому необхідний режим ПДП або навіть до складу декількох пристроїв вводу/виводу. Теоретично обмін за допомогою прямого доступу до пам'яті може забезпечити більш високу швидкість передачі інформації, ніж програмний обмін, оскільки процесор передає дані повільніше, ніж спеціалізований контролер ПДП. Проте на практиці ця перевага реалізується далеко не завжди. Швидкість обміну в режимі ПДП звичайно обмежена можливостями магістралі. До того ж необхідність програмного задання режимів контролера ПДП може звести нанівець виграш від більш високої швидкості пересилки даних в режимі ПДП. Тому режим ПДП застосовується рідко.
Якщо в системі вже є самостійний контролер ПДП, то це може у ряді випадків істотно спростити апаратуру пристроїв вводу/виводу, що працюють в режимі ПДП. В цьому, мабуть, полягає єдина безперечна перевага режиму ПДП.
попередня тема наступна тема
|